iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 19
0
AI & Data

量化投資與機器學習研究系列 第 19

19.找出隔日沖分點

  • 分享至 

  • xImage
  •  

由於這裡不能顯示html的表格,如果想有清楚表格知道前40名隔日沖分點
請看這裡
趕到11點,今天差點就PO不出這篇了

因為不是抓政府網站,為了避免太多人抓把網站用掛掉或變更難的反爬蟲,
抱歉不能提供分點的爬蟲程式碼

目前覺得對我最有幫助之一的就是分析分點
今天先來分析隔日沖
由於資料過於龐大,只取當天差額張數大於50張或賣出50張的

with MongoDatabase('broker_info') as connection:
    data = connection.export_df({'$or':[{'差額張數':{'$gte':50}},{'差額張數':{'$lte':-50}}]})
data['date']=pd.to_datetime(data['date'])
data=data.sort_values('date').reset_index(drop=True)

目前資料爬到2018-06-26~2018-11-01,欄位如下

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>卷商代號</th>
      <th>卷商</th>
      <th>分點代號</th>
      <th>分點</th>
      <th>code</th>
      <th>name</th>
      <th>買進張數</th>
      <th>賣出張數</th>
      <th>差額張數</th>
    </tr>
    <tr>
      <th>date</th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>2018-06-26</th>
      <td>1020</td>
      <td>合庫</td>
      <td>1020</td>
      <td>合庫</td>
      <td>0056</td>
      <td>元大高股息</td>
      <td>61.0</td>
      <td>0.0</td>
      <td>61.0</td>
    </tr>
    <tr>
      <th>2018-06-28</th>
      <td>1020</td>
      <td>合庫</td>
      <td>1020</td>
      <td>合庫</td>
      <td>0056</td>
      <td>元大高股息</td>
      <td>145.0</td>
      <td>0.0</td>
      <td>145.0</td>
    </tr>
    <tr>
      <th>2018-06-29</th>
      <td>1020</td>
      <td>合庫</td>
      <td>1020</td>
      <td>合庫</td>
      <td>0056</td>
      <td>元大高股息</td>
      <td>3.0</td>
      <td>105.0</td>
      <td>-102.0</td>
    </tr>
    <tr>
      <th>2018-07-05</th>
      <td>1020</td>
      <td>合庫</td>
      <td>1020</td>
      <td>合庫</td>
      <td>0056</td>
      <td>元大高股息</td>
      <td>161.0</td>
      <td>0.0</td>
      <td>161.0</td>
    </tr>
    <tr>
      <th>2018-07-10</th>
      <td>1020</td>
      <td>合庫</td>
      <td>1020</td>
      <td>合庫</td>
      <td>0056</td>
      <td>元大高股息</td>
      <td>1.0</td>
      <td>85.0</td>
      <td>-84.0</td>
    </tr>

簡單判斷,第一天要是買超50張以上,第二天要賣超50張以上,且第2天要賣超過第一天量的7成,認定為隔日沖
2018-06-28 1020 合庫 1020 合庫 0056 元大高股息 145.0 0.0 145.0
2018-06-29 1020 合庫 1020 合庫 0056 元大高股息 3.0 105.0 -102.0

2018-07-11 1020 合庫 1020 合庫 0056 元大高股息 175.0 0.0 175.0
2018-07-12 1020 合庫 1020 合庫 0056 元大高股息 0.0 236.0 -236.0
這兩筆就是隔日沖

def next_day_sell(d):
    if d[0]>0:
        if d[1]<0 and abs(d[1])/d[0]>=0.7:
            return 1
        return 0
    return 0
d['差額張數'].rolling(window=2).agg(next_day_sell)
date
2018-06-26    NaN
2018-06-28    0.0
2018-06-29    1.0
2018-07-05    0.0
2018-07-10    0.0
2018-07-11    0.0
2018-07-12    1.0
2018-07-27    0.0
2018-08-10    0.0
2018-10-05    0.0
2018-10-08    0.0
2018-10-11    0.0
2018-10-12    0.0
2018-10-26    0.0
Name: 差額張數, dtype: float64

如預期的找出2018-06-29、2018-07-12這兩天,這邊不能用window=2因為已經濾過資料,時間是不連續的所以需要明確說'2d'是兩天且有兩筆資料,還需要考慮六、日,這邊先不處理

d['差額張數'].rolling(window='2d',min_periods=2).agg(next_day_sell)
date
2018-06-26    NaN
2018-06-28    NaN
2018-06-29    1.0
2018-07-05    NaN
2018-07-10    NaN
2018-07-11    0.0
2018-07-12    1.0
2018-07-27    NaN
2018-08-10    NaN
2018-10-05    NaN
2018-10-08    NaN
2018-10-11    NaN
2018-10-12    0.0
2018-10-26    NaN
Name: 差額張數, dtype: float64
from collections import defaultdict
ndd = defaultdict(int)

for r in data.groupby(['分點代號','code'])[['date','差額張數']]:
    d=r[1].set_index('date')
    ndd[r[0][0]]+=d['差額張數'].rolling(window='2d',min_periods=2).agg(next_day_sell).sum()

nddf=pd.DataFrame(list(ndd.items()),columns=['分點代號','次數'])

取出前40名的隔日沖分點

find=nddf.sort_values('次數',ascending=False).head(40)

看看你手中的股票吧,被以下這些隔日沖買的股票要小心,第一名果然是很有名的美林
50張或許有點寬鬆,試試改成買賣的金額夠大,可能效果會更好

broker_info=data[['卷商代號', '卷商', '分點代號', '分點']].drop_duplicates()
pd.merge(broker_info,find,on='分點代號').sort_values('次數',ascending=False)
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>卷商代號</th>
      <th>卷商</th>
      <th>分點代號</th>
      <th>分點</th>
      <th>次數</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>8</th>
      <td>1440</td>
      <td>美林</td>
      <td>1440</td>
      <td>美林</td>
      <td>1578.0</td>
    </tr>
    <tr>
      <th>39</th>
      <td>9A00</td>
      <td>永豐金</td>
      <td>9A00</td>
      <td>永豐金</td>
      <td>1354.0</td>
    </tr>
    <tr>
      <th>31</th>
      <td>9800</td>
      <td>元大</td>
      <td>9800</td>
      <td>元大</td>
      <td>1303.0</td>
    </tr>
    <tr>
      <th>6</th>
      <td>8880</td>
      <td>國泰</td>
      <td>8880</td>
      <td>國泰</td>
      <td>1291.0</td>
    </tr>
    <tr>
      <th>2</th>
      <td>5850</td>
      <td>統一</td>
      <td>5850</td>
      <td>統一</td>
      <td>1287.0</td>
    </tr>
    <tr>
      <th>16</th>
      <td>8560</td>
      <td>新光</td>
      <td>8560</td>
      <td>新光</td>
      <td>1234.0</td>
    </tr>
    <tr>
      <th>0</th>
      <td>9200</td>
      <td>凱基</td>
      <td>9200</td>
      <td>凱基</td>
      <td>1113.0</td>
    </tr>
    <tr>
      <th>38</th>
      <td>1470</td>
      <td>台灣摩根士丹利</td>
      <td>1470</td>
      <td>台灣摩根士丹利</td>
      <td>1077.0</td>
    </tr>
    <tr>
      <th>26</th>
      <td>1530</td>
      <td>港商德意志</td>
      <td>1530</td>
      <td>港商德意志</td>
      <td>1033.0</td>
    </tr>
    <tr>
      <th>14</th>
      <td>1520</td>
      <td>瑞士信貸</td>
      <td>1520</td>
      <td>瑞士信貸</td>
      <td>1032.0</td>
    </tr>
    <tr>
      <th>17</th>
      <td>1650</td>
      <td>新加坡商瑞銀</td>
      <td>1650</td>
      <td>新加坡商瑞銀</td>
      <td>1026.0</td>
    </tr>
    <tr>
      <th>5</th>
      <td>9200</td>
      <td>凱基</td>
      <td>9268</td>
      <td>凱基-台北</td>
      <td>977.0</td>
    </tr>
    <tr>
      <th>30</th>
      <td>5920</td>
      <td>元富</td>
      <td>5920</td>
      <td>元富</td>
      <td>956.0</td>
    </tr>
    <tr>
      <th>13</th>
      <td>9100</td>
      <td>群益金鼎</td>
      <td>9100</td>
      <td>群益金鼎</td>
      <td>952.0</td>
    </tr>
    <tr>
      <th>19</th>
      <td>8440</td>
      <td>摩根大通</td>
      <td>8440</td>
      <td>摩根大通</td>
      <td>941.0</td>
    </tr>
    <tr>
      <th>9</th>
      <td>1480</td>
      <td>美商高盛</td>
      <td>1480</td>
      <td>美商高盛</td>
      <td>936.0</td>
    </tr>
    <tr>
      <th>27</th>
      <td>9300</td>
      <td>華南永昌</td>
      <td>9300</td>
      <td>華南永昌</td>
      <td>891.0</td>
    </tr>
    <tr>
      <th>29</th>
      <td>1160</td>
      <td>日盛</td>
      <td>1160</td>
      <td>日盛</td>
      <td>887.0</td>
    </tr>
    <tr>
      <th>37</th>
      <td>8150</td>
      <td>台新</td>
      <td>8150</td>
      <td>台新</td>
      <td>818.0</td>
    </tr>
    <tr>
      <th>4</th>
      <td>9600</td>
      <td>富邦</td>
      <td>9600</td>
      <td>富邦</td>
      <td>793.0</td>
    </tr>
    <tr>
      <th>25</th>
      <td>1360</td>
      <td>港商麥格理</td>
      <td>1360</td>
      <td>港商麥格理</td>
      <td>755.0</td>
    </tr>
    <tr>
      <th>10</th>
      <td>1590</td>
      <td>花旗環球</td>
      <td>1590</td>
      <td>花旗環球</td>
      <td>751.0</td>
    </tr>
    <tr>
      <th>33</th>
      <td>7000</td>
      <td>兆豐</td>
      <td>7000</td>
      <td>兆豐</td>
      <td>690.0</td>
    </tr>
    <tr>
      <th>20</th>
      <td>8850</td>
      <td>鑫豐</td>
      <td>8850</td>
      <td>鑫豐</td>
      <td>635.0</td>
    </tr>
    <tr>
      <th>22</th>
      <td>1560</td>
      <td>港商野村</td>
      <td>1560</td>
      <td>港商野村</td>
      <td>598.0</td>
    </tr>
    <tr>
      <th>35</th>
      <td>1260</td>
      <td>宏遠</td>
      <td>1260</td>
      <td>宏遠</td>
      <td>545.0</td>
    </tr>
    <tr>
      <th>36</th>
      <td>1020</td>
      <td>合庫</td>
      <td>1020</td>
      <td>合庫</td>
      <td>494.0</td>
    </tr>
    <tr>
      <th>18</th>
      <td>8560</td>
      <td>新光</td>
      <td>8561</td>
      <td>新光-台中</td>
      <td>493.0</td>
    </tr>
    <tr>
      <th>3</th>
      <td>5850</td>
      <td>統一</td>
      <td>585U</td>
      <td>統一-南京</td>
      <td>483.0</td>
    </tr>
    <tr>
      <th>34</th>
      <td>8840</td>
      <td>玉山</td>
      <td>8840</td>
      <td>玉山</td>
      <td>482.0</td>
    </tr>
    <tr>
      <th>11</th>
      <td>7790</td>
      <td>國票</td>
      <td>779c</td>
      <td>國票-敦北法人</td>
      <td>479.0</td>
    </tr>
    <tr>
      <th>7</th>
      <td>8960</td>
      <td>香港上海匯豐</td>
      <td>8960</td>
      <td>香港上海匯豐</td>
      <td>457.0</td>
    </tr>
    <tr>
      <th>24</th>
      <td>9300</td>
      <td>華南永昌</td>
      <td>9326</td>
      <td>華南永昌-南京</td>
      <td>451.0</td>
    </tr>
    <tr>
      <th>12</th>
      <td>8450</td>
      <td>康和</td>
      <td>8450</td>
      <td>康和</td>
      <td>442.0</td>
    </tr>
    <tr>
      <th>15</th>
      <td>9100</td>
      <td>群益金鼎</td>
      <td>918e</td>
      <td>群益金鼎-大安</td>
      <td>441.0</td>
    </tr>
    <tr>
      <th>23</th>
      <td>9600</td>
      <td>富邦</td>
      <td>9623</td>
      <td>富邦-台北</td>
      <td>427.0</td>
    </tr>
    <tr>
      <th>1</th>
      <td>5850</td>
      <td>統一</td>
      <td>585c</td>
      <td>統一-仁愛</td>
      <td>422.0</td>
    </tr>
    <tr>
      <th>32</th>
      <td>6160</td>
      <td>中國信託</td>
      <td>6160</td>
      <td>中國信託</td>
      <td>419.0</td>
    </tr>
    <tr>
      <th>28</th>
      <td>5920</td>
      <td>元富</td>
      <td>592E</td>
      <td>元富-城中</td>
      <td>408.0</td>
    </tr>
    <tr>
      <th>21</th>
      <td>9600</td>
      <td>富邦</td>
      <td>9658</td>
      <td>富邦-建國</td>
      <td>404.0</td>
    </tr>
  </tbody>
</table>

上一篇
18.上市、上櫃個股借券
下一篇
20.找出隔日沖分點改進+這半年來的妖股
系列文
量化投資與機器學習研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言